package demo4;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 入住管理类，用于管理学生的入住信息
 * author : 李硕
 * version : 1.0
 * date : 2024/10/21 16:51
 */
class CheckInManagement {
    // 入住编号
    private String checkInId;
    // 床位
    private int bedNumber;
    // 宿舍编号
    private String dormitoryId;
    // 入住时间
    private Date checkInTime;
    // 学号
    private String studentId;
    // 截止时间
    private Date endTime;

    /**
     * 构造函数，用于初始化入住信息
     *
     * @param checkInId 入住编号
     * @param bedNumber 床位
     * @param dormitoryId 宿舍编号
     * @param checkInTime 入住时间
     * @param studentId 学号
     * @param endTime 截止时间
     */
    public CheckInManagement(String checkInId, int bedNumber, String dormitoryId, Date checkInTime, String studentId, Date endTime) {
        this.checkInId = checkInId;
        this.bedNumber = bedNumber;
        this.dormitoryId = dormitoryId;
        this.checkInTime = checkInTime;
        this.studentId = studentId;
        this.endTime = endTime;
    }

    /**
     * 入住添加方法
     * 这里可以实现将入住信息添加到数据库或其他存储介质的逻辑
     */
    public void addCheckIn() {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println("入住编号: " + checkInId + " 已添加。");
        System.out.println("床位: " + bedNumber);
        System.out.println("宿舍编号: " + dormitoryId);
        System.out.println("入住时间: " + sdf.format(checkInTime));
        System.out.println("学号: " + studentId);
        System.out.println("截止时间: " + sdf.format(endTime));
    }

    /**
     * 修改入住方法
     *
     * @param bedNumber 新的床位
     * @param checkInTime 新的入住时间
     * @param endTime 新的截止时间
     */
    public void modifyCheckIn(int bedNumber, Date checkInTime, Date endTime) {
        this.bedNumber = bedNumber;
        this.checkInTime = checkInTime;
        this.endTime = endTime;
        System.out.println("入住编号: " + checkInId + " 信息已修改。");
    }

    /**
     * 入住查询方法
     * 查询并打印入住信息
     */
    public void queryCheckIn() {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println("入住编号: " + checkInId);
        System.out.println("床位: " + bedNumber);
        System.out.println("宿舍编号: " + dormitoryId);
        System.out.println("入住时间: " + sdf.format(checkInTime));
        System.out.println("学号: " + studentId);
        System.out.println("截止时间: " + sdf.format(endTime));
    }
}
